#ifndef CLOUDPOINTPROCESS_H
#define CLOUDPOINTPROCESS_H

#include <QThread>
#include <QObject>
#include <QDebug>

// 首先包含必要的头文件
#include <pcl/point_cloud.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/common/transforms.h>
#include <pcl/common/eigen.h>
#include <vector>
#include <cmath>
typedef pcl::PointXYZ PointT;
typedef pcl::PointCloud<PointT> Cloud;


class CloudPointProcess : public QThread
{
    Q_OBJECT
public:
    explicit CloudPointProcess(QObject *parent = nullptr);
    void run();
    void stop();


signals:
    void send_cloud_point(const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &cloud);//传点云图


private:
    void initializePointCloud();
    // 心形函数
    Cloud createHeartShape(int resolution);
    Cloud creatHalfRingShape(int resolution);

    bool quit;
    bool pause_status;
    int idx_num;

};

#endif // CLOUDPOINTPROCESS_H
